﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Helena.Models;

namespace Helena.Areas.Proveedores.Models
{
    public class LogicaProveedor : InterfazLogicaProveedor
    {
        DBContext Proveedor_contexto = new DBContext();
        DBGenericQueriesUtil<Proveedor> Tabla;

        public DBContext context_publico { get { return Proveedor_contexto; } }

        public LogicaProveedor()
        {
            Tabla = new DBGenericQueriesUtil<Proveedor>(Proveedor_contexto, Proveedor_contexto.t_Proveedores);
        }


        public void i_AgregarProveedor(ProveedorView proveedor)
        {
            Tabla.agregarElemento(proveedor.deserializa(this));
        }

        public void i_ModificarProveedor(ProveedorView proveedor)
        {
            Proveedor p = proveedor.deserializa(this);
            Tabla.modificarElemento(p, p.ID);
        }

        public void i_EliminarProveedor(int id)
        {
            Tabla.eliminarElemento_logico(id);
        }

        public List<ProveedorView> i_RetornarProveedores()
        {
            List<Proveedor> p = Tabla.retornarTodos();
            List<ProveedorView> p_v = new List<ProveedorView>();

            foreach (Proveedor proveedor in p) p_v.Add(new ProveedorView(proveedor));
            return p_v;
        }

        public ProveedorView i_RetornarProveedor(int id)
        {
            Proveedor p = Tabla.retornarUnSoloElemento(id);
            ProveedorView p_v = new ProveedorView(p);
            return p_v;
        }
    }
}